Estoy tratando de extraer elementos de mi base de datos usando la id de cada elemento, pero recibo un objeto vacío cuando lo ejecuto a través de Insomnia. Por ejemplo, en el código a continuación, me gustaría extraer una categoría por ID, pero también incluir cualquier Producto asociado. ¿Alguna idea de lo que podría estar haciendo mal? ¡Gracias de antemano!
router.get('/:id', async (req, res) => { try { const oneCategory = await Category.findByPk({ include: [{ model: Product }] }); // console.log(oneCategory); if (!oneCategory) { res.status(404).json({ message: 'No category found with that id!' }); return; } res.status(200).json(oneCategory); } catch (error) { res.status(500).json(error); } });Al llamar al método findByPk , debe pasar la clave que está buscando. En este caso particular, el código debería verse así:
router.get('/:id', async (req, res) => { try { const oneCategory = await Category.findByPk(req.params.id, { include: [{ model: Product }] }); if (!oneCategory) { res.status(404).json({ message: 'No category found with that id!' }); return; } res.status(200).json(oneCategory); } catch (error) { res.status(500).json(error); } });Así que solo tome la identificación de la URL con req.params.id y pásela a findByPk . Sin embargo, podría ser una buena idea verificar que la identificación sea un número entero antes de hacerlo :)